package com.ito.areaTrabajo.control;
 
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import org.zkoss.util.media.Media;
import org.zkoss.zhtml.Fileupload;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

import com.ito.areaTrabajo.modelo.dao.UsuarioDao;
import com.ito.ito.areaTrabajo.modelo.Usuario;
 
@SuppressWarnings("serial")
public class RegistrationIntegrateComposer extends SelectorComposer<Window> {
 
        private UsuarioDao usuarioDao;
 
       
        public RegistrationIntegrateComposer() {
                usuarioDao=new UsuarioDao();
        }
 
        @Wire("#submitButton")
        private Button submitButton;
       
        @Wire("#nameBox")
        private Textbox nameBox;
       
        @Wire
        private Textbox nombresBox;
       
        @Wire
        private Textbox apellidosBox;

        @Wire("#passwordBox")
        private Textbox passwordbox;
        @Wire("#correoBox")
        private Textbox correoBox;
        @Wire("#puestoCombo")
        private Combobox  puestoCombo;
        @Wire("#telefonoBox")
        private Textbox telefonoBox;
        //
        @Wire("#masculinoRadio")
        private Radio masculinoRadio;
        @Wire("#femeninoRadio")
        private Radio femeninoRadio;
        @Wire("#birthdayBox")
        private Datebox birthdayBox;
       
       
        @Wire("#acceptTermBox")
        private Checkbox acceptTermCheckbox;
       
 
        private static Logger logger = Logger.getLogger(RegistrationIntegrateComposer.class.getName());
       
         //
       
        //
        @Listen("onCheck = #acceptTermBox")
        public void changeSubmitStatus(){
                if (acceptTermCheckbox.isChecked()){
                        submitButton.setDisabled(false);
                        submitButton.setImage("/img/envio.png");
                }else{
                        submitButton.setDisabled(true);
                        submitButton.setImage("");
                }
        }
       
        @Listen("onClick = #resetButton")
        public void reset(){
                //set raw value to avoid triggering constraint error message
                nameBox.setRawValue("");
                masculinoRadio.setChecked(true);
                birthdayBox.setRawValue(null);
                acceptTermCheckbox.setChecked(false);
                submitButton.setDisabled(true);
        }
       
        @Listen("onClick = #submitButton")
        public void insertaUsuario(){
        	if (!validateInput()){
                logger.fine("input validation failed");
                return;
	        }
                Usuario usuario=new Usuario();
                usuario.setUser(nameBox.getValue());
                usuario.setNombreUsuario(nombresBox.getValue()+" "+apellidosBox.getValue());
                usuario.setPassword(passwordbox.getValue());
                usuario.setCorreoElectronico(correoBox.getValue());
                usuario.setPuesto(puestoCombo.getSelectedItem().getLabel());
                usuario.setTelefono(telefonoBox.getValue());
                usuario.setGenero(masculinoRadio.getValue());
                usuario.setGenero(femeninoRadio.getValue());
                usuario.setFecha(birthdayBox.getValue());       
                
                

                
                
                usuarioDao.persist(usuario);
                
               
                Messagebox.show("Felicidades! "+nameBox.getValue()+". Su registro ha sido un exito.");
                reset();
        }
       
        //
        private boolean validateInput(){
                if (nameBox.getValue().length()==0){
                        return false;
                }
               
                if (birthdayBox.getValue()==null){
                        return false;
                }
       
                return true;
        }
       
       
 
}